| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
#ASTRUX
A setup creation tool for live-oriented musicians (2021-01-03 : stalled development, while still having some interest in this tool, I may move it to python one day, no plan nor any schedule so far)
##Features
Linux based, using FLOSS only
All audio/midi parameters are accessible trough OSC, MIDI and TCP commands. Memo files are available as a reference to accessible parameters after project generation.
Each audio output bus has independent controls, allowing personal monitoring mixes, and in-the-box foh mixing (individual inputs can also be routed to single hardware outputs for out-of-the-box mixing)
The whole astrux tool can be configured from the command-line without any GUI. It is based on standard INI files and a few scripts. A setup mode GUI exists as a frontend, generating the same necessary configuration files.
Also a live GUI exists for a user-friendly experience, but any OSC/MIDI/TCP remote can be used if the correct messages are passed/handled to/from astrux.
Audio players are based on ecasound. When a project containing multiple players on songs is started, ecasound will load all songs chainsetups in the background, but connect only one will be connected at a time. this allow for fast context switching from one song to another.
You can define replacement tracks to feed a strip with pre-recorded material. Just in case some real human is not here to do the job.
##Goals ###SETUP
###USE
###Rehersal mode
##Milestones
###V0.1 (12/02/2014)
###V0.2 (currently running)
###V0.3
###V0.4
###V0.5
##Project folder structure
base_folder
|_audio < FOLDER for audio mixers
| |_main.ini < the main mixer definition file
| |_mixer2.ini < another submix
| |_players.ini < ecasound mixer for audio backing tracks
|
|_hardware < FOLDER for audio/midi hardware info
| |_system.ini < define which soundcard to use and more
| |_hardware.csv < generated file with ports list and aliases
|
|_midi < FOLDER for midi related info
| |_filter.py < mididings file with midi filters and more
| |_midipatch.ini < midi routing definitions mainly
|
|_project < FOLDER with global project info
| |_bridge.ini < osc, midi, tcp configuration
| |_project.ini < engines activation, project files ...
|
|_songs < FOLDER containing the songs necessary files
|_song1.ini < song info, players definitions
|_song1 < song FOLDER containing the files for that song
|_file1.wav < an audio file
|_file2.mid < a midi file
##Quick use To correctly build a project, you have to follow some rules :
To generate files, cd into the project base folder and do : perl /pathto/generate.pl
To start the project, cd into the project base folder and do : perl /pathto/modules/Live.pl myproject.cfg
many error checks are done so the script will most probably die on missing or bad info.
##OSC server commands
##INI files examples
project.ini example
# PROJECT Globals #------------------------------------- [globals] name = Complete version = 0.1 mixers_path = audio songs_path = songs output_path = files [mixerfiles] mixer1 = main.ini mixer2 = drums.ini mixer3 = players.ini [songfiles] song1 = song1.ini song2 = song2.ini # Ressources usage / services options #------------------------------------- [jack] samplerate = 48000 clocksource = internal buffer = 128 periods = 2 start = jackd -R -P89 -d alsa -d hw:DSP -p128 -n2 & [netjack] enable = 0 audioports = 2 midiports = 1 [plumbing] enable = 1 [a2jmidid] enable = 1 [midi_player] backend = jpmidi enable = 0 port = 2013 [linuxsampler] enable = 0 presetfolder = sampler port = 8888 # other #------------------------------------- [touchosc] enable = 1 layout_size = iphone layout_orientation = vertical layout_mode = 0
single channel ecasound mixer ini file example
[mixer_globals] type = main engine = ecasound name = main eca_cfg_path = ecacfg control = midi,tcp midi_port = alsaseq,astrux:0 tcp_port = 2868 # INPUTS [mic_1] type = hardware_in status = active friendly_name = leader's mic group = singers channels = 1 connect_1 = system:capture_1 insert = eq4b,complight can_be_backed = yes
single channel non-mixer ini file example
[mixer_globals] type = main name = main engine = non-mixer control = osc osc_port = 8010 autoconnect = 1 noui = 1 addpregain = 0 addmeters = 0 #INPUTS [mic_1] type = hardware_in status = active friendly_name = micn1 group = mics channels = 1 connect_1 = system:capture_1 insert = 2598 can_be_backed = yes
bridge.ini example
#creates an OSC server [OSC] enable = 1 ip = 192.168.0.15 inport = 8000 outport = 9000 sendback = 0 #creates TCP server (telnet/netcat) [TCP] enable = 1 port = 8989 #creates a prompt on local machine [CLI] enable = 0
song.ini example
[song_globals] name = song2 #this name here is the same as containing folder name friendly_name = The second song tempo = 80 autostart = 0 [players_slot_1] type = audio_player filename = monofile.wav channels = 1 [players_slot_2] type = audio_player filename = stereofile.wav channels = 2 [MIDI_01] type = midi_player filename = midifile1.mid route_to = linuxsampler:in_1 [SAMPLER] type = sampler filename = drums.lscp
Audio mixer ini file infos
#************************************************************************* # INPUT/OUTPUT CHANNEL OPTIONS #************************************************************************* # [channel_name] # unique channel name, must not contain spaces # status # active : channel will be created in mixer # inactive : channel is defined but is not added to project # type # hardware_in : connect from audio input hardware port # return : connect from audio input hardware port (related to a send_n) # submix : connect from another created submix output # player : connect from a player output # bus_hardware_out : connect to audio output hardware port as personal monitor mix # main_hardware_out : connect to audio output hardware port as mainout # send_hardware_out : connect to audio output hardware port as external fx loop # group # name : channels within the same group number can be grouped with nonmixer # in touchosc preset, each group will have different fader color # name # short name to be used within the system # lowercase only, no space character allowed, only _ special character # friendly_name # name to be displayed, space character allowed # channels # 1..2 : defines number of audio channel (1=mono, 2=stereo, more is to be tested) # connect_n # defines to which physical hardware port to connect # one line per defined channel # insert # name of the effect chain to add on the channel # correspoding ecasound preset or LADSPA ID must exist for successful apply # multiple insert can be added. Separate with commas # can_be_backed # yes/no : offer the option to replace the hardware audio input with a file # send # for a channel of type return, specify the corresponding send channelname # return # for a channel of type send, specify the corresponding return channelname # mode # stereo : output channel as stereo (default, as internals are stereo) # mono : force mono output # touchosc_pages # list of touchosc pages presets for a personal monitor output #*************************************************************************
| Back | FazBrowse Home | New Git URL |