Git Product home page Git Product logo

csound.github.io's Introduction

csound.github.io

This Git repository holds the source code for the csound.github.io website, found at https://csound.com. The source is made up of Markdown (.md) files, which hold the content for pages and posts. These files are further processed by Jekyll, together with template files, to generate the final HTML site.

How to contribute

This site is an open-source, collaborative project. The Csound community is encouraged to contribute to the maintenance of the site by adding news posts, modifying pages, updating the structure of the site, and developing the style of the pages. The following describes how to perform these tasks. These tasks may be performed directly by members of the site maintainers team, or indirectly via pull request by third parties.

Users who would like to contribute, but who are not comfortable with the technical details to make a direct contribution, are encouraged to either file an issue on the issue tracker describing the news entry or requested change, or contact one of the site maintainers who will work to evaluate and integrate any changes.

Updating Download Links

Edit _data/download.yaml.

In case you want to add a new download item, add it in _data/download.yaml and edit _layouts/download.html.

Adding a News or Projects post

It is always most easy to use an existing post, save it with a new name and modify it.

News are located in the _posts folder.
Projects are located in the \posts/showcase folder.

Each post must have a header that states the title, categories, layout, and date of the post. After the header, the post is written using Github Flavored Markdown text.

Including Images

Add the image file (.png or .jpeg) in the /images folder.

To show the image, you have two possibilities:

  1. You can use the markdown syntax for images:
    ![ADSR](images/ADSR.png)
  2. It might be better to use html and include Bootstrap's "img-fluid" class to make the image responsive and optionally scale it:
    <img src="images/ADSR.png" class="img-fluid" alt="ADSR" width=75% />

Syntax Highlighing for Code Examples

To add Csound syntax highlighting to a code block, start with
```csound
and end the block with three backticks
```

Modifying and Creating Pages

Pages are also Markdown files. They require headers that specify the layout (most should use "page") and title.

The pages markdown files follow the site structure:

  • get-started.md and others are in the /learn folder
  • conferences.md and others are in the /community folder

New pages can be made by copying one of the existing pages and updating it for the new content. Add an item at _data/navigation.yaml.

Existing pages may be modified locally and pushed to the repository, or submitted as a change via pull request. Pages may also be modified directly through the GitHub project site, which allows modifying the page within the browser. Users can navigate to the file in the project, select the edit button, then finish the edit.

Links on Internal HTML pages

In general there are three options for links:

  1. Relative links, for instance in _/layouts/home.html we can reference href="get-started.html" as relative link because whenever we are in home, we are on the same directory as the get-started.html which is generated by jekyll.
  2. We avoid absolute URL because they will not work if we test on a github projects page. (myname.github.io/myproject as root will give an error for the link '/home.html' because the page cannot be found at myname.github.io/home.html but at myname.github.io/myproject/home.html.)
  3. This is the reason we use the version href="{{ '/contact-us.html' | relative_url }}" instead, for instance in _include/footer.html. No matter where the current site is, it will look for contact-us.html in the root directory of the relative URL.

The docs Folder

This folder contains the most recent version of the manual and other references. Never change its name. (As well not for any existing page; otherwise you will create dead links.)

Modifying the Site Theme

The site uses Bootstrap 5 and a modified template by Saul Roll. The Bootstrap CSS should not changed at all; it can be replaced by a more recent version if necessary.

Syntax highlighting is done via rainbow. The source files live in assets/css/highlight and assets/js/highlight.

Font-Awesome is used for some icons, too.

css

Changes in styling must go to csound.site.css. These two style sheets are referenced in "default.html" in this order, so that Bootstrap settings are overwritten by our own styles.

Changing the Landing Page

The code is in _layouts/home-html. It is easy to change a carousel item.

Images for the landing page (carousel) must have 1140 width and 620 height as size.

Editing the Site Locally

Requirements

  1. Ruby
  2. RubyGems - most ruby distributions should come with gem installed
  3. Bundler - install using gem install bundler

Instructions

First, make a clone of the project locally:

git clone https://github.com/csound/csound.github.io.git
cd csound.github.io

From this directory, run Bundler to install the required gems:

bundle install

This installed the github-pages gem.

To view the site locally with jekyll, run:

bundle exec jekyll serve

This will start up a jekyll server. You can view the pages as they are rendered by Jekyll in your browser at:

http://localhost:4000

csound.github.io's People

Contributors

a1ro avatar anton-k avatar aure avatar berntisak avatar daveseidel avatar dependabot[bot] avatar elevien avatar emma-sg avatar fggp avatar forrcaho avatar fsateler avatar giovannibedetti avatar gogins avatar iainmccurdy avatar iver56 avatar joachimheintz avatar joshkopecek avatar jpffitch avatar ketchupok avatar kunstmusik avatar lufevida avatar luisjure avatar mantaraya36 avatar narenratan avatar paulbatchelor avatar rorywalsh avatar serkansevilgen avatar tqmbanados avatar vlazzarini avatar zabiem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csound.github.io's Issues

Add Bol Processor to related projects

Hello,

I suggest that you add Bol Processor (https://bolprocessor.org/) to the list of Csound-related projects (https://csound.com/projects.html).

Bol Processor is (probably with Csound) the oldest program for music composition which has been around for almost 40 years… We are still sharing the initial Apple II version as a vintage souvenir… We are in the process of implementing a multiplatform version running with both 32 and 64-bit processors — and looking for talented developers to join the venture!

Bol Processor BP2 won the Bourges 1997 international award (ex aequo with Cecilia) in the category of computer-aided composition and realization software. This was mainly due to its efficient interfacing with Csound.

GENpadsynth docs are wrong (missing arguments)

The padsynth doc page for the reference manual is wrong.
doc page

There are two missing parameters according to the source code.

   p8  harmonicStretchScale -- ratio of stretch of thre overtoes.

   **** missing args *****

    p9      Number specifying the shape of the bandwidth profile:

             1  Gaussian
             2  Square
             3  Exponential

    p10     Profile function parameter.

  ********************************

   p11-pN  The amplitudes of the partials (may be 0).

Also there is a broken link to the original paper at the end of the docs.
It should lead to the other site but it redirects to the csound's site.

Audio rate `expsegr` opcode is affected by control rate.

MINIMUM_BUG_EXAMPLE.csd.zip

When using the audio rate expsegr opcode, (specifically the version of expseg with the release segment), the results are impacted by the control rate.

Attached is a minimal example in which I have one instrument using expsegr, and a different version of the same instrument using the non release version expseg commented out so they can be quickly switched between for testing. With the first instrument, ksmps up to around 96 produce audio, but the audio varies with the ksmps value. For ksmps > 96, there is silence (I think the first trigger has infinite amplitude and I guess the rest are silenced). The second version is unaffected by the value of ksmps.

I believe linesegr works as expected.

Write a website maintenance guide

At some point in a hopefully near future I'd need to write up a website maintenance, as I did some internal logic there, which needs to be explained (like yaml configuration, etc.).

Installation instructions

Currently, the “Download” page has no description of what are differences between different installation options, how to install, etc.

Add a prominent Download button and a new Downloads page

A prominent Download button should be added to the site template to make it easy to find where to download Csound. That should link to a page that has links separated into groups (Desktop, iOS, Android, Web, Embedded, etc.), then an entry there per-platform. The platform links should go straight to the download for that platform.

Restructure create page

The create page needs some restructuring to be more user friendly. The sidebar solution for the contents is not a very good solution IMHO, but should rather be presented in the first paragraph. Though you can use the sidebar to jump down, once you reach the paragraph you want there is no quick of getting back up except manually scrolling.

Perhaps individual pages for each application would be better?

Reorganize download section

Hi all!

I'd like to put down some ideas based on what we've discussed at the round table. The key topic of the discussion was reorganizing the web site to make it more accessible to newbies. One of the points made in the speech was that often users think that CsoundQt is Csound… But this may be just a consequence of the problem and not the problem itself. The thing is that we have several type of users and we ship one package for everyone. Maybe you guys can better categorize users as you have Csound teaching experience, but I'd like to speculate on this topic too. So I tried to categorize the users by answering the following questions:

  1. What do users do? Who are the users?
  2. What are the level of the user?
  3. Why hypothetically have they choose Csound?
  4. What is their workflow?
  5. What features are important for them?
  6. What software package could be suitable for their workflow?
  • DSP coders / scientists
    1. Design audio processing algorithms, sound-related research.
    2. These users are (probably) have some theoretical knowledge of the sound and have concrete tasks or clear goals.
    3. You can do low-level per-sample calculation in Csound, OS-specific audio i/o abstractions, ready-made primitives for the DSP stuff development (for example, there are waveguide opcodes that could be used in reverb design).
    4. Probably a lot of coefficient tuning, a lot of orchestra reloading, a lot of data plotting, etc…
    5. Solid visualization tools (frequency/phase response, oscilloscope, etc.), ability to work with data and analyze it.
    6. CsoundQt, icsound.
  • Musicians / sound designers
    1. Explore sonic spaces, make new sounds
    2. The level of the users can vary highly—from complete newbie to DSP-guru. Most of such activities doesn't have a clear goal or concrete tasks.
    3. Csound has opcodes for (almost) every sound synthesis/processing method, and hence it's sonic capabilities are unlimited. Csound has very simple and readable syntax (comparing, for example, to SuperCollider), relatively easy to get into.
    4. Most of sound or music enthusiasts and professionals probably developed their own work habits, set of tools, etc. So Csound should be embedded to their work process. Most of these people are working in DAWs, so they're forced to go back and forth between softwares.
    5. Integration with their tools, GUI with knobs and switches, ability to make things quickly, a bunch of ready-made stuff available for experiments.
    6. Csound as VST — together with @rorywalsh we've made a prototype of Csound editor in Cabbage, which allows to edit .csd right in VST. It worked, but they were bugs. csound~ and csoundapi~ are also fall in this category.
  • Interactive stuff makers

OK, we can continue to add another use cases, but now it's too late and my brain declined to provide more.

What I think:

  • We can create several Csound distributions (no more than 3 or it'd be confusing), and provide an explanation on what audience it's attended to. At least Sound Design and Scientific packages are sounds good.
  • It may be worth it to develop existing tools with target audience in mind and not do one-for-everything tools.

Bitwise logical operators

Bitwise logical operators (&, |...) would be really useful both in score and orchestra.

Hexadecimal numbers inherently determine binary strings which can be used as rhythms.

Fill out contribute.md page

I have added a skeleton contribute.md page with headings. We need to fill out the sections with information.

New CSound front end, CSound Generator.

I have written a program to front-end CSound and used it to compose microtonal music. I am releasing the code as open source on github: https://github.com/jjsansing/csnd_generator. This includes an application to generate all possible scales within a tuning for scales of a given size. For example, all the 7 note scales in a 15 EDO tuning. When the scales are generated, they can be played using the CSound front end so you can compare them. I have created demos for this at https://www.youtube.com/watch?v=ZDQJxi2O7Ds&list=PLEQ2UEeEQ_VutimRr1IY1QPeZpb7ruhSP.

I would like to add this to the CSound site, but felt I should contact someone before updating the site. If this is acceptable, I can handle the update myself.

If you're curious about the compositions, they can be found at https://soundcloud.com/jim-sansing/sets.

Add news for VClick

Email posted to csound list today (2017-06-27):

Hi,

I am pleased and proud to announce that the first post-beta release of my wireless visual clicktrack system vClick (previusly called eClick) is out!

Now the player's app vClick client available for Android via Google Play:
https://play.google.com/store/apps/details?id=org.vclick.client

and for iOs in App Store:
https://itunes.apple.com/us/app/vclick-client/id1247820434?mt=8

About: http://tarmoj.github.io/vclick/pages/about.html
Downloads: http://tarmoj.github.io/vclick/pages/download.html
Getting started: http://tarmoj.github.io/vclick/pages/getting-started.html
Demo: https://www.youtube.com/watch?v=-w_sGl_7SuQ&feature=youtu.be

This version include so called multi-channel support - it is possible o send individual messages to players, including different meters, subdivisions, notifications etc. It may help to play complex polyrhythms or even different tempos can be encoded to the score (in relation to basic tempo).

vClick is built using Qt SDK and Csound library in vClick server.

If you find it somehow useful, give a go!

Best!
tarmo

In-consistent sidebar

Learn and Create has Contents on its sidebar, while Community and Download has Links. The sidebar should be consistent across pages and links to valuable resources should be put in relevant pages under Learn, Create or Community instead (or worst case make a new "Links" page)

Projects using Csound

Currently, the “projects” section on the web site looks lonely and leaves impression that there's not much things what people do with Csound, which is most certainly not true. Thus, we need to fill this section up with the projects we know about. I propose to add add ~20–30 projects ourselves (I can definitely contribute much to that) and after that to write an instruction for the fellow visitors explaining how to add their projects to the web site. This way we can fill the section in a matter of a week or two.

To help us with this I'd like to ask the community to list the projects they know about in the comments to this issue, and I'll be adding them to the website when I have some spare time. It'll be awesome if, besides project links, one would post some additional info: a name, a description and an image.

You can also add a project yourself by submitting a pull request. All you need to do is to create a .md file in the _post/showcase directory following the example: https://raw.githubusercontent.com/csound/csound.github.io/master/_posts/showcase/01-03-2016-Cabbage.md

So let's make this section nice and cool!

Make ways of using csound more visible

The web site should promote ways of using csound including:

  • desktop applications (include csound~ and csoundapi~)
  • mobile applications
  • embedded devices
  • web applications

This might be good to mention on the main page, as well as have a Showcase page that would direct people to examples of projects using Csound in particular ways.

Please add ModulysCS to related projects

Hello,

ModulysCS is build around ModulysVst which is a giant step-sequencer/phrase generator in Vst-plugin format.
ModulysCS is a portable app for Windows (15MB zip-file) and includes a Csound CSD-editor.

You can create your own presets and instruments.
It uses Csound 6.15.0 api for communication and sound generation.

It's totally free without restrictions.

For more info
www.raxntrax.com
www.raxntrax.com/modulys/modulyscs

Thanks in advance!

Getting Started example inaccurately described

Before the final code listing for "Your First Synthesizer," it reads:

"A second, slightly out of tune vco2 has been added to provide a little warmth to the overall sound."

This is incorrect; the example only contains a single vco.

I think it would be useful to add a second vco to the example, but I'm a bit too new to csound to do it myself. ;)

Manual: pchbend

In the manual entry of

ibend pchbend [imin] [, imax]

the arguments are explained as:

imin, imax (optional) -- set minimum and maximum limits on values obtained

I don't think it really works like this. Rather the first argument is a midpoint and the second a width. So the range spanned by the pitch bender is not imin...imax but rather imin-imax...imin+imax. I suggest to use different dummy names in the manual.

Get started: add sound file of output

There were ;[TODO] add sound file of output comments in the Rory's code examples. I removed them from the HTML and made this issue to not forget about them.

Add info on pull requests

Some information about how to contribute to the csound repo using pull requests ("best practices guide or anything to lay out expectations for PRs") should be outlined under Core Development on the Contribute page. Possibly with link to more comprehensive info on pull requests in general.

32bit limitation in bitwise logic opcodes, except | (or)

I ran into oddities while using bitwise logic with huge numbers. They are not working as expected on 64bit Csound.

You will find a boiled down version of my analysis in the attached csd (renamed to *.txt due to file type limits).
bitwise.txt

Tested with Csound 6.17 in Ubuntu and Win10.

Cheers, Jana

Getting Started examples need "0dbfs = 1"

The "full examples" on https://csound.com/get-started.html will produce silence if the reader doesn't include the at least the header line:
0dbfs = 1
This can be frustrating for someone who is just trying to 'get started'. If they just used the example they would only get silence and probably have no idea why.
I recommend somewhere after describing the header mentioning that it needs to be included in any examples on this page, and then a reminder for the first "full example" , perhaps just including the header in that example.

In other words, the first full example would become:

<CsoundSynthesizer>
<CsInstruments>
sr = 44100
nchnls = 2
0dbfs = 1

instr 1
aOut vco2 1, p4
out aOut
endin

</CsInstruments>
<CsScore>
i1 0 1 100
i1 1 1 200
i1 2 1 300
</CsScore>
</CsoundSynthesizer>

Grammar

On the website homepage itself. "Csound has traditionally being used in a..." Should be 'been'.

Cheers!

Add a Contribute Link

Add a Contribute link and page that explains ways users and developers can contribute, as well as pointers on how to do so. For example, things we may want to cover are "Submitting a bug", "Submitting a feature request", "Correcting a manual entry", "contribute code", etc. We can then point to using the issue tracker with some guidance on what to do, or ask for pull-requests and how to do that, etc.

Fix mobile layout on main page

The "Get started" and "Download" elements on the main page are overlapping on the mobile layout (tested on iPhone 5 in Chrome and Safari). They should probably scale automatically somehow.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.